﻿using furion.blog.Domain.MySQL;
using furion.blog.Domain.Query.Member;
using furion.blog.Domain.Shared;
using furion.blog.Domain.Shared.Dto.Member;
using furion.blog.Domain.Shared.Vo.Member;
using furion.blog.Domain.Shared.Vo.Shop;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace furion.blog.Application.Contracts
{
    public interface IMemberService
    {
        /// <summary>
        /// 通过id查找实体
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<Member> Model(long id);

        /// <summary>
        /// 登录
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<MemberLoginSuccessVO> Login(MemberLoginDto dto);

        /// <summary>
        /// 分页
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        Task<PageVO> List(MemberListQuery query);

        /// <summary>
        /// 更新位置信息
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task UpdateLocation(MemberLocationDto dto);

        /// <summary>
        /// 更新个人信息
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task UpdateProfile(MemberProfileUpdateDto dto);

        /// <summary>
        /// 会员资料
        /// </summary>
        /// <param name="memberId"></param>
        /// <returns></returns>
        Task<MemberProfileVO> Profile(long memberId);

        /// <summary>
        /// 绑定手机号码
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<bool> BindPhone(MemberPhoneBindDto dto);

       

    }
}
